package org.zsk.cs.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.zsk.cs.domain.po.Role;
import org.zsk.cs.domain.vo.RoleVo;

import java.util.List;

/**
 * <p>
 * 角色 service
 * </p>
 *
 * @author zsk
 * @version 1.0
 * Created on 2020/03/26
 */
public interface RoleService extends IService<Role> {

    /**
     * 批量赋予角色权限
     * @param rList 角色list
     * @param mList 权限list
     */
    boolean addMenuForRoleBatch(List<Integer> rList, List<Integer> mList);


    /**
     * 批量修改角色权限
     * @param rList 角色list
     * @param mList 权限list
     */
    boolean updateMenuForRoleBatch(List<Integer> rList, List<Integer> mList);

    /**
     * 批量赋予角色权限
     * @param uList 用户list
     * @param rList 角色list
     */
    boolean addUserForRoleBatch(List<Long> uList, List<Integer> rList);


    /**
     * 批量修改角色权限
     * @param uList 用户list
     * @param rList 角色list
     */
    boolean updateUserForRoleBatch(List<Long> uList, List<Integer> rList);

    /**
     * 根据角色id查找权限id
     * @param roleId 角色id
     * @return 权限id list
     */
    List<Integer> getMenuIdByRoleId(Integer roleId);

    /**
     * 根据角色id查找用户id
     * @param roleId 角色id
     * @return 用户id list
     */
    List<Integer> getUserIdByRoleId(Integer roleId);

    Page<Role> search(RoleVo roleVo) throws Exception;
}
